﻿using System;
using Game.Common;
using Game.Map.Internal;

namespace Game.Map
{
    public interface IGameMapView : IGameMap
    {
        event EventHandler<MapViewEventArgs> AfterResetVisible;

        MapFieldViewCollection Collection { get; }
        
        IGameMap GameMap { get; }
        
        GamePlayer Owner { get; }
        
        MapFieldViewCollection ViewFields { get; }

        void ResetVisible();
    }

    public class MapViewEventArgs : EventArgs
    {
        readonly IGameMapView _gameMap;

        public MapViewEventArgs(IGameMapView map)
        {
            _gameMap = map;
        }

        public IGameMapView GameMap
        {
            get { return _gameMap; }
        }
    }
}
